Media content may include multiple types of data streams, for example, video, audio, closed captioning, and/or other types of streams. For any single program of media content, it may be necessary to verify that each of the data streams included in the program are in synchronization with each other. For example, for programs such as movies, television shows and the like, it may be necessary to make sure that the video stream is synchronized with the audio stream. This type of synchronization may be referred to as lip synchronization, i.e., matching the motions of a speaker's lips recorded in the video stream with the audible sounds spoken by the speaker recorded in the audio stream. More generally, lip synchronization refers to the matching of the video stream with the audio stream, and is not limited to matching a speaker's lips with the spoken words. Lip synchronization is generally verified through a manual process in which a person testing synchronization views and listens to the program in real-time and determines if the video and audio streams are synchronized. By such a manual verification process, a master copy having a known good synchronization between the various data streams may be identified and/or stored.
Programs including video, audio and/or other types of data streams may be copied, converted to different file types and packaged differently for distribution when copies of a single program are to be delivered to multiple different consumers and/or types of output devices, such as for example, televisions, computers, cellular phones, and/or other devices. Examples of file type conversion may include MPEG compression of a video stream and/or Dolby AC3 compression of an audio stream. An example of packaging may include an MPEG transport stream in which video and audio files are wrapped for transmission and delivery. However, during the copying, conversion and/or packaging of copies of a program, the synchronization between the various data streams may be altered. For example, the audio stream may be delayed or advanced with respect to the video stream, such that audible sounds do not correctly match the corresponding visible motions/actions. If delivered, such copies having synchronization errors may create a poor viewing experience for consumers, and therefore, it may be necessary to include an additional process prior to delivery to prevent such errors from reaching consumers. Thus, a manual process for verification of synchronization, similar to the manual verification process previously completed for the known good master copy, may be required for each subsequent copy before delivering any copies of programs to consumers. Accordingly, a person testing synchronization may be required to view and listen to each of the copies of a program in real-time in order to determine if the video and audio streams are synchronized.
The manual verification process is time-consuming because it requires an individual to view and listen to each copy of a program in real-time. If many copies are created for delivery to multiple output devices and consumers, each of these copies must be manually viewed and listened to in real-time, thereby adding time and cost to the overall process.
In addition, because the manual verification process relies on humans to determine whether synchronization between data streams is acceptable, the manual verification process necessarily lacks consistency. For example, one individual viewing a copy may find the synchronization to be acceptable, whereas another individual viewing the same copy may find the synchronization to be unacceptable. Moreover, even a single human may lack consistency over time. For example, an individual viewing a copy may find the synchronization to be acceptable after one viewing, but, if that same individual were to view the same copy again, that individual may determine that the synchronization is unacceptable during the second viewing. Furthermore, multiple other factors may affect the performance of each person testing synchronization at any point in time, such as for example, fatigue, mood, stress, general attentiveness, outside distractions and/or other factors. Thus, the manual verification process lacks consistency due to a number of factors. Moreover, the manual verification process also lacks an objective measure by which to consistently determine whether the synchronization between data streams, such as between video and audio streams, is acceptable.
As an alternative to the manual process for verification of synchronization, measurable markers, e.g., a test signal, may be embedded in the various data streams of a program in order to determine the synchronization. For example, one or more measurable markers may be embedded at particular time points in a video stream, and corresponding measurable marker(s) may be embedded at the same particular time points in an audio stream. Thereafter, when a copy of the program including the measurable markers is created, converted and/or packaged, it can be determined whether the measurable markers embedded in the various data streams of the copy remain aligned with each other, thereby verifying that the synchronization has been maintained. However, this process requires altering the various data streams of an original program by embedding measurable markers, including the additional process steps of embedding those markers into each of the various data streams of the program and recovering those markers during playback. In addition, this process requires real-time playback of the media content in order to accurately capture the measurable markers embedded in the various data streams.